A job scheduler is a program that enables an enterprise to schedule and, in some cases, monitor computer “batch” jobs. A job is the unit of work that a job scheduler gives to the operating system. Typically, the job scheduler gives the operating system a batch of jobs to do and these are performed in the background when time-sensitive interactive work is not being done. The job is typically described with job control language (“JCL”) and is broken down into job steps.
The job scheduler can initiate and manage jobs automatically by processing prepared JCL statements or through equivalent interaction with a human user. Conventional job schedulers provide a graphical user interface and a single point of control for all the jobs in a distributed network of systems and computers.
Conventional job schedulers do not efficiently distribute jobs amongst the multiple systems to which they have access. For instance, job schedulers typically submit jobs to the first system which is permitted to receive that job. This may result in one particular system receiving an inordinate number of jobs when compared to the other systems. In addition, if the system is currently having a problem executing the jobs submitted to it, submission of the current job will only cause a further backlog on that system. Accordingly, there is a need in the art for a system and method for optimizing the scheduling of jobs in a network environment.